package com.mybatis.demo;

import com.mybatis.demo.bean.Student;
import org.apache.ibatis.reflection.DefaultReflectorFactory;
import org.apache.ibatis.reflection.Reflector;
import org.apache.ibatis.reflection.ReflectorFactory;
import org.apache.ibatis.reflection.invoker.Invoker;

/**
 * @author xiangminwen
 * @since 2022/1/21 8:58
 */
public class ReflectorTest {

    public static void main(String[] args) throws Exception {
        ReflectorFactory factory = new DefaultReflectorFactory();
        Reflector reflector = factory.findForClass(Student.class);
        // 获取构造器 生成对应的对象
        Object o = reflector.getDefaultConstructor().newInstance();
        // 写入
        Invoker invoker1 = reflector.getSetInvoker("id");
        invoker1.invoke(o, new Object[]{999});
        // 读取
        Invoker invoker2 = reflector.getGetInvoker("id");
        System.out.println(invoker2.invoke(o, null));
    }
}
